﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000313 RID: 787
	public class TMySQLCreateTableOption : TParseTreeNode
	{
		// Token: 0x17000667 RID: 1639
		// (get) Token: 0x06001BED RID: 7149 RVA: 0x0032FE65 File Offset: 0x0032E065
		// (set) Token: 0x06001BEE RID: 7150 RVA: 0x0032FE6D File Offset: 0x0032E06D
		public TObjectName characterSet
		{
			get
			{
				return this._characterSet;
			}
			set
			{
				this._characterSet = value;
			}
		}

		// Token: 0x06001BEF RID: 7151 RVA: 0x0032FE76 File Offset: 0x0032E076
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001BF0 RID: 7152 RVA: 0x0032FE86 File Offset: 0x0032E086
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x17000668 RID: 1640
		// (get) Token: 0x06001BF1 RID: 7153 RVA: 0x0032FE96 File Offset: 0x0032E096
		// (set) Token: 0x06001BF2 RID: 7154 RVA: 0x0032FE9E File Offset: 0x0032E09E
		public virtual string OptionValue
		{
			get
			{
				return this.optionValue;
			}
			set
			{
				this.optionValue = value;
			}
		}

		// Token: 0x17000669 RID: 1641
		// (get) Token: 0x06001BF3 RID: 7155 RVA: 0x0032FEA7 File Offset: 0x0032E0A7
		// (set) Token: 0x06001BF4 RID: 7156 RVA: 0x0032FEAF File Offset: 0x0032E0AF
		public virtual string OptionName
		{
			get
			{
				return this.optionName;
			}
			set
			{
				this.optionName = value;
			}
		}

		// Token: 0x1700066A RID: 1642
		// (get) Token: 0x06001BF5 RID: 7157 RVA: 0x0032FEB8 File Offset: 0x0032E0B8
		// (set) Token: 0x06001BF6 RID: 7158 RVA: 0x0032FEC0 File Offset: 0x0032E0C0
		public virtual TObjectNameList ValueList
		{
			get
			{
				return this.valueList;
			}
			set
			{
				this.valueList = value;
			}
		}

		// Token: 0x1700066B RID: 1643
		// (get) Token: 0x06001BF7 RID: 7159 RVA: 0x0032FEC9 File Offset: 0x0032E0C9
		// (set) Token: 0x06001BF8 RID: 7160 RVA: 0x0032FED1 File Offset: 0x0032E0D1
		public ETableOption tableOption
		{
			get
			{
				return this._tableOption;
			}
			set
			{
				this._tableOption = value;
			}
		}

		// Token: 0x06001BF9 RID: 7161 RVA: 0x0032FEDC File Offset: 0x0032E0DC
		public override void init(object arg1, object arg2)
		{
			this._tableOption = (ETableOption)arg1;
			switch (this.tableOption)
			{
			case ETableOption.EO_AUTO_INCREMENT:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_AVG_ROW_LENGTH:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_CHARACTER_SET:
				this.optionValue = ((TObjectName)arg2).ToString();
				this._characterSet = (TObjectName)arg2;
				return;
			case ETableOption.EO_CHECKSUM:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_COLLATE:
				this.optionValue = ((TObjectName)arg2).ToString();
				return;
			case ETableOption.EO_COMMENT:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_COMPRESSION:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_CONNECTION:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_DATA_DIRECTORY:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_INDEX_DIRECTORY:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_DELAY_KEY_WRITE:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_ENCRYPTION:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_ENGINE:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_INSERT_METHOD:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_KEY_BLOCK_SIZE:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_MAX_ROWS:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_MIN_ROWS:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_PACK_KEYS:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_PASSWORD:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_RAID_TYPE:
			case ETableOption.EO_TABLESPACE:
				break;
			case ETableOption.EO_RAID_CHUNKS:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_RAID_CHUNKSIZE:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				return;
			case ETableOption.EO_ROW_FORMAT:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_STATS_AUTO_RECALC:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_STATS_PERSISTENT:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			case ETableOption.EO_STATS_SAMPLE_PAGES:
				this.optionValue = ((TConstant)arg2).ToString();
				this.optionValueConstant = (TConstant)arg2;
				break;
			case ETableOption.EO_UNION:
				this.valueList = (TObjectNameList)arg2;
				for (int i = 0; i < this.valueList.size(); i++)
				{
					this.optionValue += this.valueList.getObjectName(i).ToString();
					if (i != this.valueList.size() - 1)
					{
						this.optionValue += ",";
					}
				}
				return;
			case ETableOption.EO_TYPE:
				this.optionValue = ((TSourceToken)arg2).ToString();
				this.optionValueToken = (TSourceToken)arg2;
				return;
			default:
				return;
			}
		}

		// Token: 0x1700066C RID: 1644
		// (set) Token: 0x06001BFA RID: 7162 RVA: 0x003302E1 File Offset: 0x0032E4E1
		public virtual TConstant OptionValueConstant
		{
			set
			{
				this.optionValueConstant = value;
			}
		}

		// Token: 0x04001A1F RID: 6687
		private string optionName;

		// Token: 0x04001A20 RID: 6688
		private string optionValue;

		// Token: 0x04001A21 RID: 6689
		private TSourceToken optionValueToken;

		// Token: 0x04001A22 RID: 6690
		private TSourceToken optionNameToken;

		// Token: 0x04001A23 RID: 6691
		private TConstant optionValueConstant;

		// Token: 0x04001A24 RID: 6692
		private TObjectNameList valueList;

		// Token: 0x04001A25 RID: 6693
		private TObjectName _characterSet;

		// Token: 0x04001A26 RID: 6694
		private ETableOption _tableOption;
	}
}
